/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-06-15 20:11:18 +0000 (Fri, 15 Jun 2012) $
  Revision     : $Revision: 94 $
*******************************************/

package core;

import java.util.ArrayList;
import java.util.List;

import mensaje.Mensaje;

/**
 * Tipos de Tabla.
 * <P>
 * Este enumerado se usa a fin reducir 
 * la duplicidad de codigo y permitir 
 * la generacion de tablas de manera dinamica.
 * 
 * @author jose.lara 09.06.2012
 */
public enum ETipoTabla {
    PROYECTOS {
        
        @Override
        public List<String> getColumnas() {
            List<String> columnas   = null;
            
            columnas = new ArrayList<String>();
            
            columnas.add(Mensaje.getMensaje("TABLA_PROYECTOS-COLUMNA_NOMBRE"));
            columnas.add(Mensaje.getMensaje("TABLA_PROYECTOS-COLUMNA_DESCRIPCION"));
            columnas.add(Mensaje.getMensaje("TABLA_PROYECTOS-COLUMNA_VERSION"));
            columnas.add(Mensaje.getMensaje("TABLA_PROYECTOS-COLUMNA_COLOR"));
            
            return columnas;
        }
    },
    
    USUARIOS {
        @Override
        public List<String> getColumnas() {
            List<String> columnas   = null;
            
            columnas = new ArrayList<String>();
            
            columnas.add(Mensaje.getMensaje("TABLA_USUARIOS-NOMBRE"));
            columnas.add(Mensaje.getMensaje("TABLA_USUARIOS-CORREO"));
            columnas.add(Mensaje.getMensaje("TABLA_USUARIOS-NOMBRE_USUARIO"));
            columnas.add(Mensaje.getMensaje("TABLA_USUARIOS-GRUPO_USUARIOS"));
            
            return columnas;
        }
    },
    ;
    
    public long getId() {
        return ordinal();
    }
    
    public abstract List<String> getColumnas();
    
    public static ETipoTabla valueOfId(int id) {
        for(ETipoTabla tipoTabla : values()) {
            if(tipoTabla.getId() == id) {
                return tipoTabla;
            }
        }
        
        return null;
    }
}